package com.qianfeng.smsplatform.strategy.service.impl;//
//                            _ooOoo_
//                           o8888888o
//                           88" . "88
//                           (| -_- |)
//                            O\ = /O
//                        ____/`---'\____
//                      .   ' \\| |// `.
//                       / \\||| : |||// \
//                     / _||||| -:- |||||- \
//                       | | \\\ - /// | |
//                     | \_| ''\---/'' | |
//                      \ .-\__ `-` ___/-. /
//                   ___`. .' /--.--\ `. . __
//                ."" '< `.___\_<|>_/___.' >'"".
//               | | : `- \`.;`\ _ /`;.`/ - ` : | |
//                 \ \ `-. \_ __\ /__ _/ .-` / /
//         ======`-.____`-.___\_____/___.-`____.-'======
//                            `=---='
//
//         .............................................
//                  佛祖镇楼                  BUG辟易
//          佛曰:
//                  写字楼里写字间，写字间里程序员；
//                  程序人员写程序，又拿程序换酒钱。
//                  酒醒只在网上坐，酒醉还来网下眠；
//                  酒醉酒醒日复日，网上网下年复年。
//                  但愿老死电脑间，不愿鞠躬老板前；
//                  奔驰宝马贵者趣，公交自行程序员。
//


import com.qianfeng.smsplatform.common.model.Standard_Submit;
import com.qianfeng.smsplatform.strategy.service.DataFileterService;
import com.qianfeng.smsplatform.strategy.service.FilterChain;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

import java.util.Map;

/**
 * Created by Mr.ycz on 2019/12/3 9:45
 */
@Service("dataFilterService")
public class DataFilterServiceImpl implements DataFileterService {

    private final static Logger log = LoggerFactory.getLogger(DataFilterServiceImpl.class);

    @Autowired
    private Map<String, FilterChain> filterChainMap;

    @Value("${smsplatform.filters}")
    private String filter;

    @Override
    public void dealMessge(Standard_Submit submit) {
        String[] filters = filter.split(",");

        if (filters != null && submit != null){
            try {
                for (int i = 0; i < filters.length; i++){

                    String name = filters[i];
                    FilterChain filterChain = filterChainMap.get(name);
                    // 判断当前的过滤器是否执行成功
                    boolean judge = filterChain.dealMessage(submit);
                    // 如果失败就直接终止循环
                    if (!judge)
                        break;
                }
            }catch (Exception e){
                log.debug("过滤器好像出问题咯憨包儿..."+e.getMessage());
            }
        }
    }
}
